package Controladores;

import java.sql.SQLException;
import java.util.Calendar;

import javax.swing.JOptionPane;

import Vistas.MainVista;
import Vistas.OrdenVista;

import BaseDeDatos.DBOrdenes;
import Clases.MateriaPrima;
import Clases.Orden;
import Clases.Usuario;

public class CargarOrden implements IGuardarOrden {
	private Orden orden;
	private OrdenVista ov;
	private Usuario usuario;
	private MainVista mv;
	
	public CargarOrden(Usuario u, MainVista mv) {
		this.usuario = u;
		this.mv = mv;
		
		this.orden = new Orden();
		
		this.orden.setEstado(Orden.ESTADO_NUEVA);
		this.orden.setFechaAlta(Calendar.getInstance().toString());
		
		this.ov = new OrdenVista(this.orden, this.usuario, this);
	}

	public void GuardarOrden(Orden o) {
		
		o.setEstado(Orden.ESTADO_ASIGNADA);
		
		for (int i = 0; i < o.getPasos().size(); i++) {
			if (o.getPasos().get(i).necesitaMateriaPrima()) {
				MateriaPrima mp = o.getPasos().get(i).getMateriaPrima();
				mp.setCantidad(mp.getCantidad() * o.getCantidad());
				
				o.getPasos().get(i).setMateriaPrima(mp);
			}
		}
		
		try {
			new DBOrdenes().guardarOrden(o);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		mv.RefrescaOrdenes();
		ov.dispose();
		JOptionPane.showMessageDialog(null, "Orden Guardada");
	}
}
